﻿using GroupMeal.Members;
using GroupMeal.Standards;
using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;

namespace GroupMeal.Groups
{
    public class Group : FullAuditedEntity<Guid>, IMultiTenant
    {
        /// <summary>
        /// 租户ID
        /// </summary>
        public virtual Guid? TenantId
        {
            get; set;
        }

        /// <summary>
        /// 组织名称
        /// </summary>
        public virtual string Name
        {
            get; set;
        }

        /// <summary>
        /// 送餐地址
        /// </summary>
        public virtual string Address
        {
            get; set;
        }

        /// <summary>
        /// 成员集合
        /// </summary>
        public virtual List<Member> Members
        {
            get;set;
        }

        /// <summary>
        /// 入团申请
        /// </summary>
        public virtual List<JoinApplication>? Applications
        {
            get;set;
        }

        /// <summary>
        /// 管理员ID
        /// </summary>
        public virtual Guid LeaderId
        {
            get;set;
        }

        /// <summary>
        /// 管理员
        /// </summary>
        public virtual Member Leader
        {
            get;set;
        }

        /// <summary>
        /// 可签收人
        /// </summary>
        public virtual List<Member> Recipients
        {
            get;set;
        }

        /// <summary>
        /// 组织二维码
        /// </summary>
        public virtual string ERCodeUrl
        {
            get;set;
        }

        /// <summary>
        /// 支付模式
        /// </summary>
        public virtual PayMode PayMode
        {
            get;set;
        }

        /// <summary>
        /// 早餐最晚送达时间
        /// </summary>
        public virtual TimeSpan BreakfastLatestReceiveTime
        {
            get;set;
        }

        /// <summary>
        /// 午餐最晚送达时间
        /// </summary>
        public virtual TimeSpan LaunchLatestReceiveTime
        {
            get; set;
        }

        /// <summary>
        /// 晚餐最晚送达时间
        /// </summary>
        public virtual TimeSpan DinnerfasLatestReceiveTime
        {
            get; set;
        }

        /// <summary>
        /// 早餐点餐截止时间
        /// </summary>
        public virtual TimeSpan BreakfastLaestOrderTime
        {
            get;set;
        }

        /// <summary>
        /// 午餐点餐截止时间
        /// </summary>
        public virtual TimeSpan LuanchLatesOrderTime
        {
            get;set;
        }

        /// <summary>
        /// 晚餐点餐截止时间
        /// </summary>
        public virtual TimeSpan DinnerLatestOrderTime
        {
            get; set;
        }

        /// <summary>
        /// 点餐标准Id
        /// </summary>
        public virtual Guid StandardId
        {
            get;set;
        }

        /// <summary>
        /// 点餐标准
        /// </summary>
        public virtual Standard Standard
        {
            get;set;
        }
    }
}
